"""
画图函数的文件
"""
import numpy as np

from PyQt5.Qt import *
from pyqtgraph import PlotWidget
from PyQt5 import QtCore
import pyqtgraph as pq


class Window(QWidget):
    def __init__(self, car_data_pos):
        super().__init__()
        # 设置下尺寸
        self.resize(800,800)
        # 添加 PlotWidget 控件
        self.plotWidget_ted = PlotWidget(self)
        # 设置该控件尺寸和相对位置
        self.plotWidget_ted.setGeometry(QtCore.QRect(25,25,775,775))
        self.pos = car_data_pos
        self.data = car_data_pos[:, 0]

        self.curve1 = self.plotWidget_ted.plot(x = self.data,
                                               y = np.array([1,1,1]),
                                               name = "mode1", 
                                               pen = None, symbol = 'o')
        # 设定定时器
        self.timer = pq.QtCore.QTimer()
        # 定时器信号绑定 update_data 函数
        self.timer.timeout.connect(self.update_data)
        # 定时器间隔50ms，可以理解为 50ms 刷新一次数据
        self.timer.start(100) #设定数据刷新间隔(ms)

    # 数据左移
    def update_data(self):
        global plot_i
        plot_i += 1
        self.data = self.pos[:, plot_i]
        # 数据填充到绘制曲线中
        self.curve1.setData(x = self.data, y = np.array([1,1,1]))


# 主要函数
def driving_plot(car_data_pos):
    global plot_i
    plot_i = 0
    import sys
    # PyQt5 程序固定写法
    app = QApplication(sys.argv)

    # 将绑定了绘图控件的窗口实例化并展示
    window = Window(car_data_pos)
    window.show()

    # PyQt5 程序固定写法
    sys.exit(app.exec())



# if __name__ == '__main__':
#     plot(data)


